#ifndef VIDEOCONTAINER_H
#define VIDEOCONTAINER_H

#include <opencv/highgui.h>
#include <opencv/cv.h>
#include <QList>
#include <iostream>

/* A Basic class that stores many frames in memory
 * and can then return them in a FIFO order.
 */
class VideoContainer
{
    private:
        //variables

        /* This list stores a collection of frames in order.
         * This simulates an uncompressed video file in memory.
         */
        QList<IplImage*> videoStore;
        int frameCounter;

    public:
        //See the .cpp file for detailed method comments
        VideoContainer();
        void addFrame(IplImage* i);
        bool hasNext();
        IplImage* readNext();
        void resetRead();
        void clear();
        bool isEmpty();
        ~VideoContainer();
};

#endif // VIDEOCONTAINER_H
